#ifndef _OGRE_CONSOLE_H_
#define _OGRE_CONSOLE_H_

#include "Console.h"
#include <OgreSingleton.h>
#include <OgreFrameListener.h>
#include <Ogre.h>
#include <OgreLog.h>

#include "OgreFramework.h"

#include <iostream>

#include <iostream>
#include <string>

 using namespace std;

class OgreConsole :  public Ogre::Singleton<OgreConsole>, public Console, public Ogre::LogListener
{
public:
    OgreConsole(int commandHistory = 20, int textHistory = 50, bool echo = false,
        ConsoleFunction defaultFunction = NULL, int commandlineIndex = 0);
    ~OgreConsole();

    static OgreConsole& getSingleton(void);
    static OgreConsole* getSingletonPtr(void);

void messageLogged( const string& message, Ogre::LogMessageLevel lml, bool maskDebug, const string &logName );
    void render();
    void initRender();

    private :

    OgreBites::TextBox* m_textBoxToRender;
};

#endif
